package com.pizza.abstrait;

import java.io.Serializable;
import java.util.Date;
import java.util.List;

/**
 * Class AbstractClient, classe abstraite rassemblant toutes les informations d'un client.
 *
 */
public abstract class AbstractClient implements Serializable
{
	protected int id;

	protected String nom;

	protected String prenom;

	protected String mail;

	protected String motdepasse;

	protected Date dateInscription;

	protected AbstractAdresse adresseFacturation;

	protected List<AbstractAdresse> adressesLivraison;

	public AbstractAdresse getAdresseFacturation()
	{
		return adresseFacturation;
	}

	public void setAdresseFacturation(AbstractAdresse adresseFacturation)
	{
		this.adresseFacturation = adresseFacturation;
	}

	public List<AbstractAdresse> getAdressesLivraison()
	{
		return adressesLivraison;
	}

	public void setAdressesLivraison(List<AbstractAdresse> adressesLivraison)
	{
		this.adressesLivraison = adressesLivraison;
	}

	public Date getDateInscription()
	{
		return dateInscription;
	}

	public void setDateInscription(Date dateInscription)
	{
		this.dateInscription = dateInscription;
	}

	public int getId()
	{
		return id;
	}

	public void setId(int id)
	{
		this.id = id;
	}

	public String getMail()
	{
		return mail;
	}

	public void setMail(String mail)
	{
		this.mail = mail;
	}

	public String getMotdepasse()
	{
		return motdepasse;
	}

	public void setMotdepasse(String motdepasse)
	{
		this.motdepasse = motdepasse;
	}

	public String getNom()
	{
		return nom;
	}

	public String getPrenom()
	{
		return prenom;
	}

	public void copyFrom(AbstractClient client)
	{
		setId(client.getId());
		setNom(client.getNom());
		setPrenom(client.getPrenom());
		setMail(client.getMail());
		setMotdepasse(client.getMotdepasse());
		setDateInscription(client.getDateInscription());
		adresseFacturation.copyFrom(client.getAdresseFacturation());
		adressesLivraison = client.getAdressesLivraison();
	}

	public void setNom(String nom)
	{
		this.nom = nom.toUpperCase();
	}

	public void setPrenom(String prenom)
	{
		this.prenom = prenom.substring(0, 1).toUpperCase() + prenom.substring(1);
	}
}
